package d2_buffer_stream;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.Writer;

public class BufferWriterDemo02 {
    public static void main(String[] args) {
        //注意字符流是有缓冲区的
        //目标: 文件字符输出流的使用
        //1、创建一个文件字符输出流与目标文件的接通的管道(对象)
        try (
                //特点: 这里能释放资源, 并且程序执行完毕之后, 会自动调用它们的colse关闭
//                Writer fw = new FileWriter("javapromax\\day10-io-code\\src\\陈某03.txt");//覆盖
                Writer fw = new FileWriter("javapromax\\day10-io-code\\src\\陈某03.txt", true);//追加
                BufferedWriter bw = new BufferedWriter(fw);
        ) {
            //2、写字符数据出去
            // a、写一个字符出去: public void write(int c)
            bw.write(97);
            bw.write('陈');
            bw.newLine();//换行

            // b、写一个字符出去: public void write(String s)
            bw.write("aaa我爱你中国666");
            bw.newLine();//换行


            //c、写字符穿的一部分出去: public void write(String s, int pos, int len )
            bw.write("aaa我爱你中国666", 3, 3);
            bw.newLine();//换行

            //d、写一个字符数组出去: public void write(char[] chars)
            char[] chars = "aaa我爱你中国666".toCharArray();
            bw.write(chars);
            //换行
            bw.newLine();//换行

            //写一个字符数组的一部分 : public void write(char[] chars, int pos, int len0
            bw.write(chars, 6, 2);
            bw.newLine();//换行

            //注意: 字符输出流是有缓冲区的
           /* fw.flush();//刷新
            fw.close(); //关闭刷新流*/

        } catch (Exception e) {
//            throw new RuntimeException(e);//不要抛,干掉JVM不好
            e.printStackTrace();
        }
    }
    }

